/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package entidades.controladores;

import entidades.Proveedores;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.LinkedList;

/**
 *
 * @author alphyon
 */
public class ProveedoresJDBC {
    PreparedStatement ps = null;
    Connection conn = null;
    ResultSet rs = null;


    public ProveedoresJDBC(){
        cargarDriver();
        coneccion();

    }

     public void cargarDriver(){
       try{
           Class.forName("org.gjt.mm.mysql.Driver");
           System.out.println("Carga de driver Correcta......");
       }catch(Exception e){
           System.out.print("A ocurrido Un problema" +
                   "en la caraga del Driver"+e.getMessage());
       }
   }

   public void coneccion(){

       try {
            conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/inventario_control", "chepe", "gundam");
            System.out.println("Conexion Satisfactoria...");
        } catch(SQLException e) {
            e.printStackTrace();
        }

   }


    public int crearProveedores(Proveedores proveedor) {
        int flag=0;

        try{
        String SQL="";
        SQL=SQL+"INSERT INTO proveedores (id,nombre,telefono,Web,correo,direccion,municipio,estado,contacto,identificacion_empresa)";
        SQL=SQL+" VALUES(?,?,?,?,?,?,?,?,?,?);";

        ps = conn.prepareStatement(SQL);

        ps.setInt(1, proveedor.getId());
        ps.setString(2, proveedor.getNombre());
        ps.setString(3, proveedor.getTelefono());
        ps.setString(4, proveedor.getWeb());
        ps.setString(5, proveedor.getCorreo());
        ps.setString(6, proveedor.getDireccion());
        ps.setInt(7, proveedor.getMunicipio());
        ps.setBoolean(8, proveedor.getEstado());
        ps.setString(9, proveedor.getContacto());
        ps.setString(10, proveedor.getIdentificacionEmpresa());


        flag=ps.executeUpdate();

        }catch(Exception e){
           e.printStackTrace();
        }finally{
             try {
              if (ps != null) ps.close();
              if (conn != null) conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }

       return flag;
    }

    public int borrarRegistroProveedores(int id){
        int flag=0;
        String SQL = "DELETE FROM proveedores WHERE id=?";


        try {
            ps = conn.prepareStatement(SQL);
            ps.setInt(1, id);
            flag=ps.executeUpdate();
        } catch (SQLException e) {
           e.printStackTrace();
        }

        return flag;
    }
    public int actualizarProveedores(Proveedores proveedor) {
        int flag=0;

        try{
        String SQL="";
        SQL=SQL+"UPDATE proveedores  SET nombre=?,telefono=?,Web=?,correo=?,direccion=?,municipio=?,estado=?,contacto=?,identificacion_empresa=? WHERE id=?";


        ps = conn.prepareStatement(SQL);


        ps.setString(1, proveedor.getNombre());
        ps.setString(2, proveedor.getTelefono());
        ps.setString(3, proveedor.getWeb());
        ps.setString(4, proveedor.getCorreo());
        ps.setString(5, proveedor.getDireccion());
        ps.setInt(6, proveedor.getMunicipio());
        ps.setBoolean(7, proveedor.getEstado());
        ps.setString(8, proveedor.getContacto());
        ps.setString(9, proveedor.getIdentificacionEmpresa());
        ps.setInt(10, proveedor.getId());

        flag=ps.executeUpdate();

        }catch(Exception e){
           e.printStackTrace();
        }finally{
             try {
              if (ps != null) ps.close();
              if (conn != null) conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }

       return flag;
    }
    public LinkedList<Proveedores> getProveedores(){
       LinkedList<Proveedores> lista=new LinkedList<Proveedores>();

       String SQL="SELECT * FROM proveedores";
        try {
            ps = conn.prepareStatement(SQL);
            rs = ps.executeQuery();

            while(rs.next()){

                Proveedores proveedor = new Proveedores();
                proveedor.setId(rs.getInt("id"));
                proveedor.setNombre(rs.getString("nombre"));
                proveedor.setTelefono(rs.getString("telefono"));
                proveedor.setCorreo(rs.getString("correo"));
                proveedor.setDireccion(rs.getString("direccion"));
                proveedor.setWeb(rs.getString("Web"));
                proveedor.setIdentificacionEmpresa(rs.getString("identificacion_empresa"));
                proveedor.setEstado(rs.getBoolean("estado"));
                proveedor.setMunicipio(rs.getInt("municipio"));
                proveedor.setContacto(rs.getString("contacto"));




                lista.add(proveedor);

            }


        } catch (SQLException e) {
            e.printStackTrace();
        } finally{
             try {
              if (rs != null) rs.close();
              if (ps != null) ps.close();
              if (conn != null) conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }

        return lista;


   }

  public static void  main(String[]args){
         ProveedoresJDBC munic = new ProveedoresJDBC();
    LinkedList<Proveedores> lismuni =munic.getProveedores();

        for(int i=0; i<lismuni.size();i++){
            System.out.print("<option value='"+lismuni.get(i).getId()+"'>"+lismuni.get(i).getNombre()+"</option>");
            }



   }


}
